Introdução
Este princípio articula a importância de equilibrar muito dos negócios conflitantes e das necessidades
das partes interessadas, assim como equilibrar o desenvolvimento customizado versus a
reutilização dos recursos na satisfação dessas necessidades.
|
|
Benefícios
|
-
Alinhar os aplicativos em conjunto com os negócios e as necessidades do usuário
-
Reduzir o desenvolvimento customizado
-
Otimizar o valor do negócio
|
Padrão
|
-
Definir, compreender e priorizar os negócios e as necessidades do usuário
-
Priorizar os projetos e os requisitos e unir as necessidades com as capacidades do
software;
-
Compreender quais recursos podemos alavancar;
-
Equilibrar a reutilização dos recursos com as necessidades do usuário
|
Antipadrões
|
-
Documentar a fundo os requisitos minuciosos no início do projeto, colocar a
aceitação do interessado a esses requisitos
-
Negociar todas as alterações aos requisitos, pois cada alteração pode
aumentar o custo do projeto,
-
Bloquear os requisitos diretos, reduzindo assim a capacidade de elevar os
recursos existentes,
-
Desempenhar principalmente o desenvolvimento customizado.
-
Arquitetar um sistema apenas para atender as necessidades dos interessados mais
influentes.
|
|
Discussão
Por exemplo, muitos interessados preferem ter um aplicativo que realize exatamente o que eles querem, enquanto minimiza
o custo do desenvolvimento do aplicativo e o tempo de planejamento. Muito embora, essas prioridades freqüentemente
estejam em conflito. Outro exemplo é que se alavancássemos um aplicativo empacotado, seríamos capazes de
entregar uma solução mais rápida e a um custo menor, mas precisamos negociar vantagens e desvantagens em muitos
requisitos. Se, em vez disso, optarmos por construir um aplicativo a partir de rascunho, ele poderia endereçar todo
requisito em sua própria lista de itens de interesse, mas o orçamento e a data de conclusão do projeto podem ser
forçados para além dos limites possíveis.
Utilizando um componente é possível reduzir radicalmente os custos e programar a entrega de um certo conjunto de
funcionalidades. Em muitos casos, nós também devemos nos comprometer com alguns requisitos técnicos ou funcionais, como
o suporte a plataformas, desempenho ou base (tamanho físico do aplicativo).
Para estarmos em posição de equilibrar requisitos, precisamos primeiro gerenciar os requisitos efetivamente, conforme
descrito em Material de Suporte: Gerenciamento de Requisitos. Em vez de enviar equipes
programadas para atacar cada elemento em uma lista de requisitos, precisamos compreender e priorizar as
necessidades de negócios e dos interessados. Isso significa capturar os processos comerciais e vinculá-los aos
projetos e capacidades de software, o que nos permite priorizar efetivamente os projetos e os requisitos e modificar
nossa prioridade na medida em que aumenta nossa compreensão dos aplicativos e desenvolvem as necessidades dos
interessados. Isso também significa que nossa necessidade envolve o cliente ou o representante de serviços no projeto
para garantir que possamos compreender quais são essas necessidades.
Ao mesmo tempo, precisamos centralizar as atividades de desenvolvimento em torno das necessidades do
interessado. Por exemplo, alavancado o caso de uso orientado pelo desenvolvimento e design centralizado pelo
cliente, nosso processo de desenvolvimento pode acomodar a evolução das necessidades dos envolvidos no curso do
projeto, na medida em que uma função de alteração dos negócios e nosso conhecimento aprimorado sobre as
capacidades que são realmente importantes para os negócios e os usuários finais.
Finalmente, precisamos compreender quais ativos estão disponíveis e equilibrar a reutilização dos ativos com
as necessidades dos envolvidos. Exemplos dos ativos incluem aplicativos de legado, serviços, componentes
reutilizáveis e padrões. A reutilização dos ativos pode, em muitos casos, conduzir à redução no custo do projeto. A
reutilização de ativos comprovados muitàs vezes significa qualidades superiores em novos aplicativos. A desvantagem é
que, em muitos casos, nós precisamos comercializar a reutilização de ativos e aperfeiçoar a capacidade de
satisfazer as necessidades do usuário. A reutilização de um componentes pode reduzir os custo no desenvolvimento de um
recurso em 80 por cento, mas só é possível atender 75 por cento dos requisitos. Portanto, a reutilização efetiva nos
faz equilibrar constantemente a reutilização de ativos com as necessidades dos envolvidos.
|